// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "WorldEntity.h"
#include "WorldControllerParts.h"

/**
 * An entity of a controller.
 */
class FWorldController : public FWorldEntity
{

public:

	using Ptr = std::shared_ptr<FWorldController>;
	using Super = FWorldEntity;

	FWorldEntityProperty< std::string >										Name;
	FWorldEntityProperty< std::uint32_t >									Sequence;
	FWorldEntityPartArrayReference< FWorldControllerControl, 1, INT_MAX >	Control;

public:

	FWorldController();
	FWorldController(const json& j);
	~FWorldController() override;

	void Resolve(FWorldEntityReferencing& referencing) override;

	WORLD_ENTITY_META_DECLARE(FWorldController)

};
